package br.trainee.web.controller;

import java.io.Serializable;
import java.util.Locale;
import java.util.ResourceBundle;

import javax.annotation.PostConstruct;
import javax.enterprise.context.SessionScoped;
import javax.faces.context.FacesContext;
import javax.inject.Named;

import br.trainee.web.util.UtilFuncoes;

@Named("linguagem")
@SessionScoped
public class LinguagemBean implements Serializable{

	private static final long serialVersionUID = 1L;
	
	private Locale localeEscolhido;
	private ResourceBundle bundle;
	
	@PostConstruct
	public void inicializar(){
		
		Locale localeUsuario = FacesContext.getCurrentInstance().getExternalContext().getRequestLocale();
		
		this.localeEscolhido = localeUsuario;
		
		this.bundle = ResourceBundle.getBundle(UtilFuncoes.PATH_MESSAGES, localeEscolhido);
		
	}
	
	public void mudarLinguagem(String linguagem, String pais){
		
		Locale localeUsuario = new Locale(linguagem, pais);
		
		this.localeEscolhido = localeUsuario;
		
		this.bundle = ResourceBundle.getBundle(UtilFuncoes.PATH_MESSAGES, localeEscolhido);
		
		FacesContext.getCurrentInstance().getViewRoot().setLocale(localeEscolhido);
		
	}
	
	public String getString(String chave){
		
		return this.bundle.getString(chave);
	}

	public Locale getLocaleEscolhido() {
		return localeEscolhido;
	}

	public void setLocaleEscolhido(Locale localeEscolhido) {
		this.localeEscolhido = localeEscolhido;
	}

	public ResourceBundle getBundle() {
		return bundle;
	}

	public void setBundle(ResourceBundle bundle) {
		this.bundle = bundle;
	}
	
}
